home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The PC-SIG Library 9
/
The PC-SIG Library on CD ROM - Ninth Edition.iso
/
801_900
/
DISK0875
/
DISK0875.ZIP
/
CLKTIM.C
< prev
next >
Wrap
Text File
|
1987-01-03
|
2KB
|
65 lines
/***************************************************** CLKTIM.C
* NAME: CLKTIM
*
* FUNCTION: Get current time.
*
* EXAMPLE: CLKTIM();
*
* INPUTS: Time obtained from system call.
*
* OUTPUT: placed into global definitions
*
**************************************************************
* 11/22/86 -RBM- original implementation
**************************************************************/
#define XTRNALGLOBALS 1 /* globals externally defined */
#include "E:CLKGBL.H" /* setup global storage */
#define DBUGON 0 /* 0=debug off, 1=debug on */
/**************************************************************
* BEGIN ROUTINE
**************************************************************/
CLKTIM()
{
static int doscall = SYSINTR; /* system interrupt # */
if (DBUGON == 0)
{
/*---- setup "lasts" -----------*/
lasthr = thishr;
lt24hr = th24hr;
lastmn = thismn;
lastsc = thissc;
while (lastsc == thissc)
{/*--- repeat continuously until time changes ---*/
/*--- get true system time ---*/
sreg.ax = GETTIME;
csysint (doscall, &sreg, &rreg);
thishr = rreg.cx / 256;
thismn = rreg.cx & 0X00FF;
thissc = rreg.dx / 256;
};
/*--- convert to 12 hour clock ----*/
th24hr = thishr;
if (thishr > 12) thishr -= 12;
}
else
{/*--- debugging, fake system time ----*/
lasthr = thishr;
lastmn = thismn;
lastsc = thissc;
if (++thissc >= 60)
{ thissc=0;
if (++thismn >= 60)
{thismn=0;
if (++thishr >= 12) thishr=0;
};
};
};
} /***** end of routine ******/